package com.ruoyi.web.service.impl;

import java.util.List;

import com.ruoyi.kubernetes.service.IKubernetesClientNamespaceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.web.mapper.KubernetesNamespaceMapper;
import com.ruoyi.web.domain.KubernetesNamespace;
import com.ruoyi.web.service.IKubernetesNamespaceService;

/**
 * kubernetes_namespaceService业务层处理
 *
 * @author xuchengchao
 * @date 2022-04-28
 */
@Service
public class KubernetesNamespaceServiceImpl implements IKubernetesNamespaceService {
    @Autowired
    private KubernetesNamespaceMapper kubernetesNamespaceMapper;

    @Autowired
    private IKubernetesClientNamespaceService KubernetesClientNamespaceService;

    /**
     * 查询kubernetes_namespace
     *
     * @param id kubernetes_namespace主键
     * @return kubernetes_namespace
     */
    @Override
    public KubernetesNamespace selectKubernetesNamespaceById(Long id) {
        return kubernetesNamespaceMapper.selectKubernetesNamespaceById(id);
    }

    /**
     * 查询kubernetes_namespace列表
     *
     * @param kubernetesNamespace kubernetes_namespace
     * @return kubernetes_namespace
     */
    @Override
    public List<KubernetesNamespace> selectKubernetesNamespaceList(KubernetesNamespace kubernetesNamespace) {
        return kubernetesNamespaceMapper.selectKubernetesNamespaceList(kubernetesNamespace);
    }

    /**
     * 新增kubernetes_namespace
     *
     * @param kubernetesNamespace kubernetes_namespace
     * @return 结果
     */
    @Override
    public int insertKubernetesNamespace(KubernetesNamespace kubernetesNamespace) {
        KubernetesClientNamespaceService.addNamespace(kubernetesNamespace.getNamespace());
        return kubernetesNamespaceMapper.insertKubernetesNamespace(kubernetesNamespace);
    }

    /**
     * 修改kubernetes_namespace
     *
     * @param kubernetesNamespace kubernetes_namespace
     * @return 结果
     */
    @Override
    public int updateKubernetesNamespace(KubernetesNamespace kubernetesNamespace) {
        return kubernetesNamespaceMapper.updateKubernetesNamespace(kubernetesNamespace);
    }

    /**
     * 批量删除kubernetes_namespace
     *
     * @param ids 需要删除的kubernetes_namespace主键
     * @return 结果
     */
    @Override
    public int deleteKubernetesNamespaceByIds(Long[] ids) {
        return kubernetesNamespaceMapper.deleteKubernetesNamespaceByIds(ids);
    }

    /**
     * 删除kubernetes_namespace信息
     *
     * @param id kubernetes_namespace主键
     * @return 结果
     */
    @Override
    public int deleteKubernetesNamespaceById(Long id) {
        KubernetesNamespace kubernetesNamespace = kubernetesNamespaceMapper.selectKubernetesNamespaceById(id);
        boolean result = KubernetesClientNamespaceService.deleteNamespace(kubernetesNamespace.getNamespace());
        if (result) {
            return kubernetesNamespaceMapper.deleteKubernetesNamespaceById(id);
        } else {
            return 0;
        }
    }
}
